package gui_demo;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
    案例5：
        考勤查询
*/
public class AttendanceQuery {
    public static void main(String[] args) {
        // 窗体及设置
        JFrame jf = new JFrame(); // 创建窗口对象
        jf.setSize(400, 300); // 设置宽高（单位是px像素）
        // 基本设置
        jf.setTitle("考勤查询"); // 1. 设置标题
        jf.setLocationRelativeTo(null); // 2.居中显示
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 3.关闭窗口时，退出程序 JFrame.EXIT_ON_CLOSE / 3
        jf.setAlwaysOnTop(true); // 4.置顶
        jf.setLayout(null); // 取消页面的默认布局

        //创建日期选择器对象，指定日期字符串格式
        DateChooser dateChooser1 = DateChooser.getInstance("yyyy-MM-dd");
        DateChooser dateChooser2 = DateChooser.getInstance("yyyy-MM-dd");
        // 添加基本组件
        // 考勤日期文本
        JLabel dataJLabel = new JLabel("考勤日期");
        dataJLabel.setBounds(50, 20, 100, 20); // 设置位置和大小
        jf.add(dataJLabel); // 添加到窗口中

        // 开始时间文本
        JLabel startTimeJLabel = new JLabel("开始时间");
        startTimeJLabel.setBounds(50, 70, 100, 20);
        jf.add(startTimeJLabel);
        // 开始时间输入框
        JTextField startTimeJTextField = new JTextField();
        startTimeJTextField.setBounds(50, 100, 100, 20);
        // 把日历控件和文本框进行绑定
        dateChooser1.register(startTimeJTextField);
        jf.add(startTimeJTextField);
        // 结束时间文本
        JLabel endTimeJLabel = new JLabel("结束时间");
        endTimeJLabel.setBounds(250, 70, 100, 20);
        jf.add(endTimeJLabel);
        // 结束时间输入框
        JTextField endTimeJTextField = new JTextField();
        endTimeJTextField.setBounds(250, 100, 100, 20);
        // 把日历控件和文本框进行绑定
        dateChooser2.register(endTimeJTextField);
        jf.add(endTimeJTextField);
        // 确定按钮
        JButton confirmJButton = new JButton("确定");
        confirmJButton.setBounds(250, 180, 60, 20);
        jf.add(confirmJButton);
        // 添加按钮点击事件
        confirmJButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 获取文本框的字符串内容
                String startStr = startTimeJTextField.getText();
                String endStr = endTimeJTextField.getText();
                // 创建日期格式化对象
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

                try {
                    // 解析字符串
                    Date startDate = sdf.parse(startStr);
                    Date endDate = sdf.parse(endStr);
                    // 弹框打印
                    JOptionPane.showMessageDialog(jf, startDate + "\n" + endDate);
                } catch (ParseException ex) {
                    throw new RuntimeException(ex);
                }
            }
        });

        jf.setVisible(true); // 显示窗口，一般放在最后
    }
}
